lib/repo: Add an API to get min-free-space-* reserved bytes
authorUmang Jain <umang@endlessm.com>
Fri, 31 Aug 2018 14:20:29 +0000 (19:50 +0530)
committerAtomic Bot <atomic-devel@projectatomic.io>
Tue, 4 Sep 2018 21:31:34 +0000 (21:31 +0000)
https://phabricator.endlessm.com/T23694

Closes: #1715
Approved by: cgwalters

apidoc/ostree-sections.txt
src/libostree/libostree-devel.sym
src/libostree/ostree-repo.c
src/libostree/ostree-repo.h

index 2e174244fc6c9a0ce83f26171497f01313763707..70f93babe9d44d8dc69f667a13d9bc7c7de1401b 100644 (file)
@@ -294,6 +294,7 @@ ostree_repo_create_at
 ostree_repo_create
 ostree_repo_get_path
 ostree_repo_get_mode
+ostree_repo_get_min_free_space_bytes
 ostree_repo_get_config
 ostree_repo_get_dfd
 ostree_repo_hash
index 24db9df2c8f5d1bbc05a3a0586ced0cfaaf34ede..0bdade759c40019a561b425baf35337affe888db 100644 (file)
@@ -19,6 +19,7 @@
 
 /* Add new symbols here.  Release commits should copy this section into -released.sym. */
 LIBOSTREE_2018.9 {
+ostree_repo_get_min_free_space_bytes;
 } LIBOSTREE_2018.7;
 
 /* Stub section for the stable release *after* this development one; don't
index 18736c2403bf29e74a0b4706b262fc50ef9976c7..edcb8af9ea42aab523dea8f033dc1b3c85531907 100644 (file)
@@ -3292,6 +3292,26 @@ ostree_repo_get_mode (OstreeRepo  *self)
   return self->mode;
 }
 
+/**
+ * ostree_repo_get_min_free_space:
+ * @self: Repo
+ *
+ * It should be noted that this function should be used only if there
+ * is a transaction active. It is a programmer error to request it
+ * otherwise.
+ *
+ * Returns: Value (in bytes) of min-free-space-* config option
+ * Since: 2018.9
+ */
+guint64
+ostree_repo_get_min_free_space_bytes (OstreeRepo  *self)
+{
+  g_return_val_if_fail (OSTREE_IS_REPO (self), 0);
+  g_return_val_if_fail (self->in_transaction == TRUE, 0);
+
+  return self->reserved_blocks * self->txn.blocksize;
+}
+
 /**
  * ostree_repo_get_parent:
  * @self: Repo
index 60fa3d3ebd593b56f299ced8ad6d9812ef847c98..11b7927e7a773209a8bdede0388b9de42ebe9c55 100644 (file)
@@ -127,6 +127,8 @@ gboolean      ostree_repo_equal (OstreeRepo *a,
 _OSTREE_PUBLIC
 OstreeRepoMode ostree_repo_get_mode (OstreeRepo  *self);
 
+_OSTREE_PUBLIC
+guint64        ostree_repo_get_min_free_space_bytes (OstreeRepo *self);
 _OSTREE_PUBLIC
 GKeyFile *    ostree_repo_get_config (OstreeRepo *self);